iOS Texture 框架
Texture(也被称为 AsyncDisplayKit) 是一个构建在 UIKit 之上的 iOS 框架,它确保即使是最复杂的用户界面也能保持流畅和响应迅速。该框架最初是为了实现 Facebook 的 Paper 应用而构建的,并与 pop 的基于物理的动画紧密结合,但它与 UIKit Dynamics 和传统的应用设计同样强大。更近期,它被用于支持 Pinterest 的应用重写。
随着框架的发展,加入了许多功能,这些功能可以通过消除现代 iOS 应用中常见的样板式结构来为开发者节省大量时间。如果您曾经处理过单元格重用的错误,尝试为页面或滚动样式界面预加载数据,或者只是试图防止您的应用丢失太多帧,那么您可以从集成 Texture 中受益。
Texture 和 AsyncDisplayKit 有区别,协议不同:
- AsyncDisplayKit:BSD
- Texture:Apache
核心概念
-
异步渲染:将消耗性能的 UI 操作从主线程剥离,保证主线程可以保持流畅。
-
节点(Node):在 Texture 中,所有的 UI 组件都被称为节点。这些节点代表了 UI 的各个部分,如文本、图片等。节点需要先添加到节点容器,再将容器添加到 UIKit 体系中。
-
布局系统:Texture 提供了一个强大的布局系统(基于 CSS Flexbox),允许开发者以声明式的方式定义 UI 的布局。这使得 UI 的构建更加直观和简洁。
-
性能优化:Texture 专注于提供高性能的 UI。
节点状态
节点具备以下状态:Preload、Display、Visible。
围绕状态,有相应的事件回调。
节点容器
智能预加载:异步完成布局计算、数据读取、解码、渲染。
布局系统
- 快
- 异步计算
- 声明式
- 可缓存(预加载)
- 可扩展
受 CSS Flexbox 启发,未实现 CSS。
网络资源
- Texture | A UI Framework for Effortless Responsiveness (texturegroup.org)
- [译] AsyncDisplayKit/Texture 官方文档(1) - 掘金 (juejin.cn)
- [译] AsyncDisplayKit/Texture 官方文档(2) - 掘金 (juejin.cn)
本文作者:Maeiee
本文链接:iOS Texture 框架
版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!
喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!